#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>

#include <linux/device.h>

// 用于匹配驱动和设备的函数
static int vbus_match(struct device *dev, struct device_driver *drv)
{
    return 1;  // 返回1表示传入的设备和驱动匹配成功（正常情况下会比对ID号）
}
// 定义了一个代表总线的VBUS对象
static struct bus_type vbus = {
    .name = "vbus",  // 总线名称
    .match = vbus_match,  // 用于匹配驱动和设备的函数
};

EXPORT_SYMBOL(vbus);

static int __init vbus_init(void)
{
    return bus_register(&vbus);  // 向内核注册该总线
}

static void __exit vbus_exit(void)
{
    bus_unregister(&vbus);  // 总线的撤销
}

module_init(vbus_init);
module_exit(vbus_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("KDY <chaoxi_todo@qq.com>");
MODULE_DESCRIPTION("A simple module");
MODULE_ALIAS("virtual-serial");